#ifndef __NET_PARAM_H
#define __NET_PARAM_H
#include <stdint.h>


#define NET_PARAM_TYPE_TABLE \
    X_MACRO(NET_PARAM_TYPE_PORT1_IP0,  0) \
    X_MACRO(NET_PARAM_TYPE_PORT1_IP1,  1) \
    X_MACRO(NET_PARAM_TYPE_PORT1_IP2,  2) \
    X_MACRO(NET_PARAM_TYPE_PORT1_IP3,  3) \
    X_MACRO(NET_PARAM_TYPE_PORT1_MAC0, 4) \
    X_MACRO(NET_PARAM_TYPE_PORT1_MAC1, 5) \
    X_MACRO(NET_PARAM_TYPE_PORT1_MAC2, 6) \
    X_MACRO(NET_PARAM_TYPE_PORT1_MAC3, 7) \
    X_MACRO(NET_PARAM_TYPE_PORT1_MAC4, 8) \
    X_MACRO(NET_PARAM_TYPE_PORT1_MAC5, 9) \
    X_MACRO(NET_PARAM_TYPE_PORT2_IP0,  10) \
    X_MACRO(NET_PARAM_TYPE_PORT2_IP1,  11) \
    X_MACRO(NET_PARAM_TYPE_PORT2_IP2,  12) \
    X_MACRO(NET_PARAM_TYPE_PORT2_IP3,  13) \
    X_MACRO(NET_PARAM_TYPE_PORT2_MAC0, 14) \
    X_MACRO(NET_PARAM_TYPE_PORT2_MAC1, 15) \
    X_MACRO(NET_PARAM_TYPE_PORT2_MAC2, 16) \
    X_MACRO(NET_PARAM_TYPE_PORT2_MAC3, 17) \
    X_MACRO(NET_PARAM_TYPE_PORT2_MAC4, 18) \
    X_MACRO(NET_PARAM_TYPE_PORT2_MAC5, 19) \
    X_MACRO(NET_PARAM_TYPE_PORT3_IP0,  20) \
    X_MACRO(NET_PARAM_TYPE_PORT3_IP1,  21) \
    X_MACRO(NET_PARAM_TYPE_PORT3_IP2,  22) \
    X_MACRO(NET_PARAM_TYPE_PORT3_IP3,  23) \
    X_MACRO(NET_PARAM_TYPE_PORT3_MAC0, 24) \
    X_MACRO(NET_PARAM_TYPE_PORT3_MAC1, 25) \
    X_MACRO(NET_PARAM_TYPE_PORT3_MAC2, 26) \
    X_MACRO(NET_PARAM_TYPE_PORT3_MAC3, 27) \
    X_MACRO(NET_PARAM_TYPE_PORT3_MAC4, 28) \
    X_MACRO(NET_PARAM_TYPE_PORT3_MAC5, 29) \
    X_MACRO(NET_PARAM_TYPE_PORT4_IP0,  30) \
    X_MACRO(NET_PARAM_TYPE_PORT4_IP1,  31) \
    X_MACRO(NET_PARAM_TYPE_PORT4_IP2,  32) \
    X_MACRO(NET_PARAM_TYPE_PORT4_IP3,  33) \
    X_MACRO(NET_PARAM_TYPE_PORT4_MAC0, 34) \
    X_MACRO(NET_PARAM_TYPE_PORT4_MAC1, 35) \
    X_MACRO(NET_PARAM_TYPE_PORT4_MAC2, 36) \
    X_MACRO(NET_PARAM_TYPE_PORT4_MAC3, 37) \
    X_MACRO(NET_PARAM_TYPE_PORT4_MAC4, 38) \
    X_MACRO(NET_PARAM_TYPE_PORT4_MAC5, 39) \

typedef enum
{
#define X_MACRO(a, b) a = b,
    NET_PARAM_TYPE_TABLE
#undef X_MACRO  
} netParamType_t;


int NetParam_Init(void);
int NetParam_Get(netParamType_t type, uint16_t *pValue);
int NetParam_Set(netParamType_t type, uint16_t value);
int NetParam_Update(void);


#endif
